Ответы на этот вопрос являются результатом усилий сообщества. Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. Как я могу перенаправить пользователя с одной страницы на другую с помощью jQuery или чистого JavaScript?
2020-12-07 22:02:16
1 2 следующий Не просто перенаправить с помощью jQuery jQuery не требуется, а window.location.replace (...) лучше всего имитирует перенаправление HTTP. window.location.replace (...) лучше, чем использование window.location.href, потому что replace () не сохраняет исходную страницу в истории сеанса, а это означает, что пользователь не застрянет в бесконечном back- кнопка фиаско. Если вы хотите имитировать, как кто-то нажимает на ссылку, используйте location.href Если вы хотите имитировать перенаправление HTTP, используйте location.replace Например: // поведение аналогично перенаправлению HTTP window.location.replace ("http://stackoverflow.com"); // поведение аналогично нажатию на ссылку window.location.href = "http://stackoverflow.com"; | ВНИМАНИЕ: этот ответ был предоставлен только как возможное решение; Очевидно, это не лучшее решение, так как для этого требуется jQuery. Вместо этого предпочтите решение на чистом JavaScript. $ (расположение) .attr ('href', 'http://stackoverflow.com') | Стандартный "ванильный" JavaScript способ перенаправления страницы window.location.href = 'newPage.html'; Или проще: (поскольку окно глобально) location.href = 'newPage.html'; Если вы оказались здесь, потому что теряете HTTP_REFERER при перенаправлении, продолжайте читать: (В противном случае проигнорируйте эту последнюю часть) Следующий раздел предназначен для тех, кто использует HTTP_REFERER в качестве одной из многих мер безопасности (хотя это не самая лучшая защитная мера). Если вы используете Internet Explorer 8 или ниже, эти переменные теряются при использовании любой формы перенаправления страниц JavaScript (location.href и т. Д.). Ниже мы собираемся реализовать альтернативу для IE8 и ниже, чтобы не потерять HTTP_REFERER. В противном случае вы почти всегда можете просто использовать window.location.href. Проверка на HTTP_REFERER (вставка URL, сеанс и т. Д.) Может помочь определить, является ли запрос законным. (Примечание: есть также способы обойти / обманывать этих рефереров, как указано в ссылке droop в комментариях) Простое решение для кросс-браузерного тестирования (возврат к window.location.href для Internet Explorer 9+ и всех других браузеров) Использование: перенаправление ('anotherpage.aspx'); перенаправление функции (url) { var ua = navigator.userAgent.toLowerCase (), isIE = ua.indexOf ('msie')! == -1, версия = parseInt (ua.substr (4, 2), 10); // Internet Explorer 8 и ниже if (isIE && версия <9) { var link = document.createElement ('a'); link.href = url; document.body.appendChild (ссылка); link.click (); } // Все остальные браузеры могут использовать стандартный window.location.href (они не теряют HTTP_REFERER, как Internet Explorer 8 и ниже) else { window.location.href = url; } } | Есть много способов сделать это. // window.location window.location.replace ('http://www.example.com') window.location.assign ('http://www.example.com') window.location.href = 'http://www.example.com' document.location.href = '/ путь' // window.history window.history.back () window.history.go (-1) // window.navigate; ТОЛЬКО для старых версий Internet Explorer window.navigate ('top.jsp') // Наверное, нет буэно self.location = 'http://www.example.com'; top.location = 'http://www.example.com'; // jQuery $ (расположение) .attr ('href', 'http: //www.example.com') $ (окно) .attr ('местоположение', 'http: //www.example.com') $ (расположение) .prop ('href', 'http://www.example.com') | Это работает для любого браузера: window.location.href = 'ваш_url'; | Было бы полезно, если бы вы были немного более описательны в том, что пытаетесь сделать. Если вы пытаетесь сгенерировать выгружаемые данные, есть несколько вариантов, как это сделать. Вы можете создать отдельные ссылки для каждой страницы, на которую хотите напрямую перейти. 1 2 3 ... Обратите внимание, что текущая страница в примере по-разному обрабатывается в коде и с помощью CSS. Если вы хотите, чтобы выгружаемые данные изменялись через AJAX, здесь может пригодиться jQuery. Вам нужно добавить обработчик кликов к каждому из тегов привязки, соответствующих другой странице. Этот обработчик кликов вызовет некоторый код jQuery, который переходит и выбирает следующую страницу через AJAX и обновляет таблицу новыми данными. В приведенном ниже примере предполагается, что у вас есть веб-служба, которая возвращает данные новой страницы. $ (документ) .ready (функция () { $ ('a.pager-link'). click (function () { var page = $ (this) .attr ('href'). split (/ \? /) [1]; $ .ajax ({ введите: 'POST', url: '/ путь-к-услуге', данные: страница, успех: функция (содержание) { $ ('# myTable'). html (контент); // заменить } }); вернуть ложь; // чтобы остановить ссылку }); }); | Я также считаю, что location.replace (URL) - лучший способ, но если вы хотите уведомить поисковые системы о своем перенаправлении (они не анализируют код JavaScript, чтобы увидеть перенаправление), вам следует добавить мета rel = "canonical" тег на свой сайт. Добавление раздела noscript с метатегом обновления HTML в нем также является хорошим решением. Я предлагаю вам использовать этот инструмент перенаправления JavaScript длясоздавать перенаправления. Он также поддерживает Internet Explorer для передачи HTTP-реферера. Пример кода без промедления выглядит так: | Но если кто-то хочет перенаправить обратно на домашнюю страницу, он может использовать следующий фрагмент. window.location = window.location.host Было бы полезно, если у вас есть три разных среды: разработка, подготовка и производство. Вы можете изучить этот объект window или window.location, просто введя эти слова в Chrome Console или Firebug Console. | JavaScript предоставляет вам множество методов для получения и изменения текущего URL-адреса, который отображается в адресной строке браузера. Все эти методы используют объект Location, который является свойством объекта Window. Вы можете создать новый объект Location с текущим URL следующим образом: var currentLocation = window.location; Базовая структура URL <протокол >//<имя хоста >:<порт>/ <путь ><поиск> <хэш> Протокол - указывает имя протокола, которое будет использоваться для доступа к ресурсу в Интернете. (HTTP (без SSL) или HTTPS (с SSL)) имя хоста - имя хоста указывает хост, которому принадлежит ресурс. Например, www.stackoverflow.com. Сервер предоставляет услуги, используя имя хоста. порт - номер порта, используемый для распознавания определенного процесса, которому должно быть перенаправлено Интернет или другое сетевое сообщение, когда оно поступает на сервер. pathname - путь дает информацию о конкретном ресурсе на хосте, к которому веб-клиент хочет получить доступ. Например, stackoverflow.com/index.html. query - строка запроса следует за компонентом пути и предоставляет строку информации, которую ресурс может использовать для некоторых целей (например, в качестве параметров для поиска или данных для обработки). hash - Якорная часть URL-адреса, включает знак решетки (#). С помощью этих свойств объекта Location вы можете получить доступ ко всем этим компонентам URL. hash - устанавливает или возвращает часть привязки URL-адреса. host -Sets или возвращает имя хоста и порт URL-адреса. hostname -Sets или возвращает имя хоста URL. href - устанавливает или возвращает весь URL. pathname - устанавливает или возвращает полное имя URL-адреса. порт - устанавливает или возвращает номер порта, который сервер использует для URL-адреса. протокол - устанавливает или возвращает протокол URL-адреса. поиск-наборы или возвращает часть запроса URL-адреса Теперь, если вы хотите изменить страницу или перенаправить пользователя на другую страницу, вы можете использовать свойство href объекта Location следующим образом Вы можете использовать свойство href объекта Location. window.location.href = "http://www.stackoverflow.com"; Объект местоположения также имеет эти три метода assign () - загружает новый документ. reload () - перезагружает текущий документ. replace () - заменяет текущий документ новым Вы можете использовать методы assign () и replace также для перенаправления на другие страницы, подобные этим location.assign ("http://www.stackoverflow.com"); location.replace ("http://www.stackoverflow.com"); Чем отличаются assign () и replace () - Разница между методом replace () и методом assign () () заключается в том, что replace () удаляет URL-адрес текущего документа из истории документа, что означает, что использование невозможно. кнопку «назад», чтобы вернуться к исходному документу. Поэтому используйте метод assign (), если вы хотите загрузить новый документ и хотите предоставить возможность вернуться к исходному документу. Вы можете изменить свойство href объекта местоположения, используя jQuery, также как это $ (расположение) .attr ('href', url); И, следовательно, вы можете перенаправить пользователя на другой URL-адрес. | По сути, jQuery - это просто структура JavaScript, и для выполнения некоторых вещей, таких как перенаправление, в этом случае вы можете просто использовать чистый JavaScript, поэтому в этом случае у вас есть 3 варианта использования vanillaJavaScript: 1) Использование замены местоположения заменяет текущую историю страницы, что означает, что невозможно использовать кнопку возврата, чтобы вернуться на исходную страницу. window.location.replace ("http://stackoverflow.com"); 2) Используя назначение местоположения, вы сохраните историю, а с помощью кнопки возврата вы сможете вернуться на исходную страницу: window.location.assign ("http://stackoverflow.com"); 3) Я рекомендую использовать один из этих предыдущих способов, но это может быть третий вариант с использованием чистого JavaScript: window.location.href = "http://stackoverflow.com"; Вы также можете написать функцию в jQuery для ее обработки, но не рекомендуется, так как это только одна строка чистой функции JavaScript, также вы можете использовать все вышеперечисленные функции без окна, если вы уже находитесь в области окна, например window.location.replace ("http://stackoverflow.com"); может быть location.replace ("http://stackoverflow.com"); Также я показываю их все на изображении ниже: | Следует просто установить с помощью window.location. Пример: window.location = "https://stackoverflow.com/"; Вот прошлый пост на эту тему: Как мне перенаправить на другую веб-страницу? | Прежде чем я начну, jQuery - это библиотека JavaScript, используемая для работы с DOM. Поэтому вам не следует использовать jQuery для перенаправления страницы. Цитата с Jquery.com: Хотя jQuery может работать без серьезных проблем в старых версиях браузеров, мы не тестируем в них активно jQuery и вообще не исправляем ошибки что может в них появиться. Его нашли здесь: https://jquery.com/browser-support/ Таким образом, jQuery не является универсальным решением для обеспечения обратной совместимости. Следующее решение, использующее необработанный JavaScript, работает во всех браузерах и долгое время было стандартным, поэтому вам не нужны никакие библиотеки для кроссбраузерной поддержки. Эта страница будет перенаправлена в Google через 3000 миллисекунд.пример Вскоре вы будете перенаправлены в Google.
<сценарий> setTimeout (function () { window.location.href = "http://www.google.com"; // URL, который тоже будет перенаправлен. }, 3000); // Чем больше число, тем дольше задержка. Возможны следующие варианты: window.location.href = "url"; // Имитирует обычную навигацию на новую страницу window.location.replace ("URL"); // Удаляет текущий URL из истории и заменяет его новым URL window.location.assign ("URL"); // Добавляет новый URL в стек истории и перенаправляет на новый URL window.history.back (); // Имитирует нажатие кнопки возврата window.history.go (-1); // Имитирует нажатие кнопки возврата window.history.back (-1); // Имитирует нажатие кнопки возврата window.navigate ("page.html"); // То же, что и window.location = "url" При использовании замены кнопка «Назад» не вернется на страницу перенаправления, как будто ее никогда не было в истории. Если вы хотите, чтобы пользователь мог вернуться на страницу перенаправления, используйте window.location.href или window.location.assign. Если вы действительно используете опцию, которая позволяет пользователю вернуться на страницу перенаправления, помните, что когда вы входите на страницу перенаправления, она перенаправит вас обратно. Так что учитывайте это при выборе варианта перенаправления. В условиях, когда страница перенаправляется только тогда, когда пользователь выполняет какое-либо действие, тогда наличие страницы в истории кнопки «Назад» будет нормальным. Но если страница автоматически перенаправляется, вам следует использовать замену, чтобы пользователь мог использовать кнопку возврата, не возвращаясь на страницу, которую отправляет перенаправление. Вы также можете использовать метаданные для выполнения перенаправления страницы следующим образом. МЕТА Обновить META Местоположение BASE HijackingНа этой странице можно найти множество других методов перенаправления ничего не подозревающего клиента на страницу, на которую он, возможно, не захочет заходить (ни один из них не зависит от jQuery): https://code.google.com/p/html5security/wiki/RedirectionMethods Я также хотел бы отметить, что люди не любят, когда их перенаправляют случайным образом. Перенаправляйте людей только тогда, когда это абсолютно необходимо. Если вы начнете перенаправлять людей случайным образом, они больше никогда не перейдут на ваш сайт. Следующий абзац гипотетический: О вас также могут сообщить как о вредоносном сайте. В этом случае, когда люди нажимают на ссылку на ваш сайт, браузер пользователей может предупредить их о том, что ваш сайт является вредоносным. Также может произойти то, что поисковые системы могут начать понижать ваш рейтинг, если люди сообщают о плохом опыте использования вашего сайта. Ознакомьтесь с рекомендациями Google для веб-мастеров о переадресации: https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971 Вот забавная маленькая страничка, которая выталкивает вас со страницы. Уходи Уходи
<сценарий> setTimeout (function () { window.history.back (); }, 3000); Если вы объедините два примера страниц вместе, у вас будет младенческий цикл перенаправления этогогарантирует, что ваш пользователь никогда больше не захочет использовать ваш сайт. | var url = 'asdf.html'; window.location.href = url; | Вы можете сделать это без jQuery как: window.location = "http://yourdomain.com"; И если вам нужен только jQuery, вы можете сделать это так: $ jq (окно) .attr ("местоположение", "http://yourdomain.com"); | Это работает с jQuery: $ (window) .attr ("местоположение", "http://google.fr"); | # Перенаправление HTML-страницы с использованием метода jQuery / JavaScript Попробуйте этот пример кода: функция YourJavaScriptFunction () { var i = $ ('# логин'). val (); если (я == 'логин') window.location = "Login.php"; еще window.location = "Logout.php"; } Если вы хотите указать полный URL-адрес в виде window.location = "www.google.co.in" ;. | Исходный вопрос: «Как перенаправить с помощью jQuery?», Следовательно, ответ реализует jQuery >> Бесплатный вариант использования. Чтобы просто перенаправить на страницу с JavaScript: window.location.href = "/ контакт /"; Или, если вам нужна задержка: setTimeout (function () { window.location.href = "/ контакт /"; }, 2000); // Время в миллисекундах jQuery позволяет с легкостью выбирать элементы на веб-странице. Вы можете найти на странице все, что хотите, а затем использовать jQuery для добавления специальных эффектов, реагирования на действия пользователя или отображения и скрытия содержимого внутри или за пределами выбранного вами элемента. Все эти задачи начинаются с знания того, как выбрать элемент или событие. $ ('a, img'). on ('щелчок', function (e) { e.preventDefault (); $ (this) .animate ({ opacity: 0 // Поместите сюда CSS-анимацию }, 500); setTimeout (function () { // ОК, команда jQuery завершена, перейдем к перенаправлению window.location.href = "/ контакт /"; }, 500); }); Представьте, что кто-то написал скрипт / плагин с 10000 строк кода. С помощью jQuery вы можете подключиться к этому коду, используя всего пару строк. | Вам нужно вставить эту строку в свой код: $ (расположение) .attr ("href", "http://stackoverflow.com"); Если у вас нет jQuery, используйте JavaScript: window.location.replace ("http://stackoverflow.com"); window.location.href ("http://stackoverflow.com"); | Итак, вопрос в том, как сделать страницу перенаправления, а не в том, как перенаправить на сайт? Для этого вам нужно использовать только JavaScript. Вот небольшой код, который создаст страницу динамического перенаправления. <сценарий> var url = window.location.search.split ('url =') [1]; // Получаем URL после? Url = если (url) window.location.replace (url); Допустим, вы просто поместили этот фрагмент в файл redirect / index.html на своем веб-сайте и можете использовать его так. http://www.mywebsite.com/redirect?url=http://stackoverflow.com И если вы перейдете по этой ссылке, она автоматически перенаправит вас на stackoverflow.com. Ссылка на документацию Вот как вы делаете простую страницу перенаправления с помощью JavaScript. Редактировать: Также следует отметить одну вещь. Я добавил window.location.replace в свой код, потому что я думаю, что он подходит для страницы перенаправления, но вы должны знать, что при использовании window.location.replace, и вы перенаправляетесь, когда вы нажимаете кнопку возврата в браузере, он не вернулся на страницу перенаправления, и он вернется на предыдущую страницу, взгляните на эту небольшую демонстрацию. Пример: Процесс: сохранить главную => перенаправить страницу в гугл => гугл Когда в Google: google => кнопка назад в браузере => магазин домой Итак, если это соответствует вашим потребностям, тогда все должно быть в порядке. Если вы хотите включить страницу перенаправления в историю браузера, замените это если (url) window.location.replace (url); с участием если (url) window.location.href = url; | В функции щелчка просто добавьте: window.location.href = "URL, на который вы хотите перенаправить"; $ ('# id'). click (function () { window.location.href = "http://www.google.com"; }); | Попробуй это: location.assign ("http://www.google.com"); Фрагмент кода примера. | jQuery не нужен. Ты можешь это сделать: window.open ("URL", "_ self", "", "") Это так просто! Лучший способ инициировать HTTP-запрос - использовать document.loacation.href.replace ('URL'). | Сначала напишите правильно. Вы хотите перейти в приложении по другой ссылке из вашего приложения по другой ссылке. Вот код: window.location.href = "http://www.google.com"; И если вы хотите перемещаться по страницам в своем приложении, у меня также есть код, если хотите. | Вы можете перенаправить в jQuery так: $ (расположение) .attr ('href', 'http://yourPage.com/'); | Используя JavaScript: Способ 1: window.location.href = "http://google.com"; Способ 2: window.location.replace ("http://google.com"); Используя jQuery: Метод 1: $ (местоположение) $ (местоположение) .attr ('href', 'http://google.com'); Метод 2: функция многократного использования jQuery.fn.redirectTo = function (url) { window.location.href = url; } jQuery (окно) .redirectTo ("http://google.com"); | В JavaScript и jQuery мы можем использовать следующий код для перенаправления одной страницы на другую: window.location.href = "http://google.com"; window.location.replace ("page1.html"); | ECMAScript 6 + jQuery, 85 байт $ ({jQueryCode: (url) => location.replace (url)}). attr ("jQueryCode") ("http://example.com") Пожалуйста не убиваймне это шутка. Это шутка. Это шутка. Это действительно «дало ответ на вопрос» в том смысле, что требовало решения «с использованием jQuery», что в данном случае влечет за собой включение его в уравнение. Феррибиг, очевидно, нуждается в объяснении шутки (все еще шучу, я уверен, что в форме обзора есть ограниченные варианты), поэтому без лишних слов: В других ответах без необходимости используется jQuery attr () для объектов местоположения или окна. Этот ответ также злоупотребляет этим, но более нелепым образом. Вместо того, чтобы использовать его для установки местоположения, он использует attr () для получения функции, которая устанавливает местоположение. Функция называется jQueryCode, хотя в ней нет ничего jQuery, а вызов функции somethingCode просто ужасен, особенно когда что-то даже не является языком. «85 байт» - это ссылка на Code Golf. Очевидно, что гольф - это не то, чем вы должны заниматься вне кодового гольфа, и, кроме того, этот ответ явно не в гольф. В основном передергиваю. | Javascript: window.location.href = 'www.your_url.com'; window.top.location.href = 'www.your_url.com'; window.location.replace ('www.your_url.com'); JQuery: var url = 'www.your_url.com'; $ (расположение) .attr ('href', url); $ (location) .prop ('href', url); // вместо местоположения можно использовать окно | Вот перенаправление с задержкой по времени. Вы можете установить время задержки по своему усмотрению:Название вашего документа <сценарий> задержка (8000)Вы будете перенаправлены через 8 секунд!| Есть три основных способа сделать это: window.location.href = 'blaah.com'; window.location.assign ('blaah.com'); а также... window.location.replace ('blaah.com'); Последний вариант лучше всего подходит для традиционного перенаправления, потому что он не сохраняет страницу, на которую вы перешли до перенаправления, в истории поиска. Однако, если вы просто хотите открыть вкладку с помощью JavaScript, вы можете использовать любое из перечисленных выше. РЕДАКТИРОВАТЬ: префикс окна не является обязательным. | 1 2 следующий Не тот ответ, который вы ищете? Посмотрите другие вопросы с метками javascript jquery redirect или задайте свой вопрос.